Field of the Invention
The disclosure relates generally to a method for sharing a plurality of design files, and more particularly, to a method for managing concurrent access to a plurality of design files shared by multiple users.
Description of the Related Art
A hierarchical design approach is used to partition a complex design into a plurality of smaller design units for an integrated circuit (IC). Furthermore, the design units are organized into a design hierarchy. A design unit is typically called a “cell” (or more specifically a “cell view”). A design hierarchy starts with a top cell, which is the root of the hierarchy. The top cell comprises a plurality of instances of cells, wherein each smaller cell may comprise a plurality of instances of smaller cells. The hierarchy can “go down” for as many levels as needed.
Cells of an IC design are stored in one or multiple design libraries. The contents of a cell (or a cell view) are typically saved in a disk file. A design library is typically implemented as a “folder” (or “directory”) on the disk, and the design files are stored in the library folder or subfolders. Multiple users may concurrently work on the cells in a library. To ensure data integrity, a cell needs to be “locked” when the cell is being edited by a user; thus, other users cannot edit the cell until the cell is unlocked. Traditionally, to lock a cell is achieved by creating a lock file and placing an exclusive lock on the lock file. Therefore, the presence of a lock file plus the exclusive lock placed on it tells the world that the cell is being modified, and other programs attempting to modify the cell shall wait until the lock is dropped and the lock file deleted. If the lock file is present but the exclusive lock on it is gone already, it means the lock holder program has terminated abnormally—for example, the lock holder program didn't get a chance to remove the locks and delete the lock files properly. Logically, subsequent user programs attempting to lock the cell should implement routines to do the clean-up work for the abnormally terminated program. After the clean-up, the locking protocol can continue. This scheme works fine except for the performance overhead. That is, when there is only one user accessing the cells during the entire editing session, the overhead of creating and deleting locks files and creating and deleting exclusive locks may be too much. What is needed is a new locking scheme that does as little as possible until another user comes in asking for accessing cells concurrently.
Accordingly, what is desired are improved methods and apparatus for solving some of the problems discussed above and/or herein. Additionally, what is desired are improved methods and apparatus for reducing some of the drawbacks discussed above and/or herein.